const inquirer = require('inquirer');
const shell = require('shelljs');
const path = require('path')
async function init(){

    // 1. 显示输入项目名称等提示信息 (异步任务这个是)
    // []数组表示多个步骤； 每个对象表示一个步骤描述信息
    const inputTips = await inquirer.prompt([
        {
            type:"input",  // input表示通过键盘输入
            name:"name",    // 输入的内容存储的变量名称
            message:"新项目的名称",  // 提示文字
            default: 'myapp'   // 默认值
        },
        {
            type: "list",  // 有个列表，让用户选择
            name: "packager",    // 输入的内容存储的变量名称
            message: "使用哪个包管理器来安装依赖",  // 提示文字
            choices:["npm","yarn","pnpm"],  // 列表信息
            default: 'npm'   // 默认值
        }
    ])

    const projectName = inputTips.name;

    // 2. 通过shell.js创建目录
    shell.mkdir(projectName)

    // 3. 将模板代码复制到该目录下面
    // -R 递归复制  内容路径
    shell.cp('-r', path.join(__dirname, '../template/framework/*'), projectName)

    // 4. 进入项目目录，调用包管理安装新项目的依赖
    shell.cd(projectName)
    if (inputTips.packager === 'yarn'){
        shell.exec('yarn')
    } else if (inputTips.packager === 'pnpm'){
        shell.exec('pnpm i')
    }else{
        shell.exec('npm i')
    }

}

module.exports = {
    init
}